js:
//版本: V3.2022年2月1日
initConfig({
    Gitee: 'https://gitee.com/xiao-zero/xiao/raw/master/js/xiao.js',
})

//x5rule强力嗅探 → 技术有香佬提供  
function x5rule(jiexurl, srcurl) {
    showLoading("动态解析规则中，请稍候");
    var video = 'webRule://' + jiexurl + '@' + $.toString((srcurl) => {
        //fba.log(fba.getUrls());
        var urls = _getUrls();
        if (window.count == null || window.count == undefined) {
            window.count = 0
        }
        if (window.count >= 23) {
            return srcurl
        }
        window.count = window.count + 1;
        if (window.count > 1 && window.count <= 3 && window.count != null && window.count != undefined) {
            if (document.querySelector('body').innerText.search(/触发了防盗链|未授权|接口防盗|请到主站观看/) != -1) {
                if (!srcurl) {
                	fba.log('尝试跳防盗验证一');
                    location.href = location.href;
                } else {
                	fba.log('尝试跳防盗验证二');
                    location.href = srcurl
                }
            };
        } else if(window.count > 3 && window.count != null && window.count != undefined){
            if (urls.length < 1) {
                fba.hideLoading();
                return 'toast://检索失败，可能链接无法访问。';
            } else if (urls.length == 1) {
                fba.log('尝试直链与JSON解析');
                if (urls[0].match(/dycdn\-tos\.pstatp|\.m3u8|\.mp4|\.flv|netease\.com|video_mp4|type\=m3u8|pt\=m3u8/) && !urls[0].match(/\.html|m3u8\.tv|\&next|ac\=dm|\=http|https\:\/\/[\d]\.m3u8|\?url\=\/m3u8/)) {
                    //fy_bridge_app.log(urls[0])
                    if (urls[0].indexOf('bilivideo') != -1) {
                        return urls[0] + ';{Referer@https://www.bilibili.com&&User-Agent@Mozilla/5.0}';
                    } else if (urls[0].indexOf('titan.mgtv.com') != -1) {
                        return urls[0] + '#isVideo=true#' + ';{Referer@www.mgtv.com&&User-Agent@Mozilla/5.0}';
                    } else {
                        return urls[0]
                    };
                } else if (location.href.match(/dycdn\-tos\.pstatp|\.m3u8|\.mp4|\.flv|netease\.com|video_mp4|type\=m3u8|pt\=m3u8/) && !location.href.match(/html|m3u8\.tv|\&next|ac\=dm|\=http|https\:\/\/[\d]\.m3u8|\?url\=\/m3u8/)) {
                    return location.href;
                } else {
                    var html = fba.fetch(location.href, {});
                    if (!/\<meta/.test(html)&&!/\<html/.test(html)) {
                    return JSON.parse(html).url;
                    }else{
                    return location.href}
                };
            } else {
                fba.log('日志检索第' + window.count + '次');
                for (var i in urls) {
                    if (urls[i].match(/dycdn\-tos\.pstatp|\.m3u8|\.mp4|\.flv|netease\.com|video_mp4|type\=m3u8|pt\=m3u8/) && !urls[i].match(/html|m3u8\.tv|\&next|ac\=dm|\=http|https\:\/\/[\d]\.m3u8|\?url\=\/m3u8/)) {
                        //fy_bridge_app.log(urls[i])
                        if (urls[i].indexOf('bilivideo') != -1) {
                            return urls[i] + ';{Referer@https://www.bilibili.com&&User-Agent@Mozilla/5.0}';
                        } else if (urls[i].indexOf('titan.mgtv.com') != -1) {
                            return urls[i] + '#isVideo=true#' + ';{Referer@www.mgtv.com&&User-Agent@Mozilla/5.0}';
                        } else if (urls[i].indexOf('juhaokan') != -1) {
                            return urls[i] + ';{Referer@https://www.juhaokan.cc/}';
                        } else if (urls[i].indexOf('ojbk') != -1) {
                            return urls[i] + ';{Referer@https://v.ojbkjx.com/}';
                        } else if (urls[i].indexOf('wkfile') != -1) {
                            return urls[i] + ';{Referer@https://fantuan.wkfile.com/}';
                        } else {
                            return urls[i] + '#isVideo=true#'
                        }
                    }
                } //end for i
            }
        }
    }, srcurl);
    return video
}
//结束x5rule强力嗅探

//  免嗅调渡区 → 技术有断念大佬提供  
var ParseS = {
    maoss: function(jxurl, ref, key) {
        eval(fetch("hiker://files/cache/Parse_Dn.js"));
        try {
            var getVideoInfo = function(text) {
                return tools.AES(text, key, iv);
            };
            let headers = {
                headers: {
                    "Referer": ref || ''
                }
            };
            var html = ref ? request(jxurl, headers) : request(jxurl);
            if (/&btwaf=/.test(html)) {
                html = request(jxurl + "&btwaf" + html.match(/&btwaf(.*?)"/)[1], {
                    headers: {
                        "Referer": ref
                    }
                });
            }
            var iv = html.split("token = \"")[1].split("\"")[0];
            eval(html.match(/var config = {[\s\S]*?}/)[0] + "");
            if (!/^http/.test(config.url)) {
                config.url = decodeURIComponent(tools.AES(config.url, "dvyYRQlnPRCMdQSe", iv));
            }
            return config.url;
        } catch (e) {
            return "";
        }
    },
    RX: function(vipUrl) {
        eval(getCryptoJS());
        var parse = "https://80k.tv/dmplayer/jxplayer.php?v=";
        var html = fetch(parse + vipUrl, {
            headers: {
                "Referer": "https://80k.tv/",
                "User-Agent": PC_UA
            }
        });
        var PAR = {
            secret(word, code, isDecrypt) {
                code = CryptoJS.MD5(code).toString();
                var iv = CryptoJS.enc.Utf8.parse(code.substring(0, 16));
                var key = CryptoJS.enc.Utf8.parse(code.substring(16));
                if (isDecrypt) {
                    return CryptoJS.AES.decrypt(word, key, {
                        iv: iv,
                        padding: CryptoJS.pad.Pkcs7
                    }).toString(CryptoJS.enc.Utf8);
                }
                return CryptoJS.AES.encrypt(word, key, {
                    iv: iv,
                    mode: CryptoJS.mode.CBC,
                    padding: CryptoJS.pad.Pkcs7
                }).toString();
            },
            compare(key) {
                return function(a, b) {
                    return a[key] - b[key];
                };
            }
        };
        var config = {
            url: pdfh(html, "body&&script&&Html").match(/"url": "(.*)"/)[1]
        };
        var _pr = pdfh(html, "meta[name=\"viewport\"]&&id").replace("vod_", "");
        var _pu = pdfh(html, "meta[charset=\"UTF-8\"]&&id").replace("vod_", "");
        var _puArr = [];
        var _newArr = [];
        var _code = "";
        for (var i = 0; i < _pu.length; i++) {
            _puArr.push({
                id: _pu[i],
                text: _pr[i]
            });
        }
        _newArr = _puArr.sort(PAR.compare("id"));
        for (var i = 0; i < _newArr.length; i++) {
            _code += _newArr[i].text;
        }
        config.url = PAR.secret(config.url, _code, true);
        return config.url;
    },
    TG: function(vipUrl) {
        var url = this.maoss("https://play.lihaoyun.top/m3u8.php?url=" + vipUrl, false, "91E013558F873CC5");
        return url + ';{User-Agent@Mozilla/5.0 (Windows NT 10.0)}';
    },
    LT: function(vipUrl) {
        var url = this.maoss("https://titan.mgtv.com.vodjx.top/?url=" + vipUrl, false, "A42EAC0C2B408472");
        return cacheM3u8(url);
    },
    xfyun: function(vipUrl) {
        try {
            /*链接： xfy-23cfdb34d478c216
                       备用： 奇粹视频 → http://www.ikuwoo.cn/
                   解析： http://xfy.ikuwoo.cn/?url=
                   解析： https://xfy.lihaoyun.top/?url=*/
            var yurl = "https://jx.ak1080.me/?url=" + vipUrl;
            var html = request(yurl, {
                headers: {
                    "Referer": "https://www.ak1080.me/"
                }
            });
            var url = html.match(/"url":"(.*?)"/)[1];
            return url;
        } catch (e) {
            return "";
        }
    },
    RR: function(vipUrl) {
    var Url = JSON.parse(request("https://kuba.renrenmi.cc:2266/api/?key=ZTSkid2ROth73IfIIR&url=" + vipUrl)).url;
    return Url;
    },
    DD: function(vipUrl) {
    var Url = JSON.parse(request("http://json.yyyy.fun/xd.php?url=" + vipUrl)).url;
    return Url;
    }
}


//断念插件调度

var DN = `eval("var config =" + fetch("hiker://files/cache/MyParseSet.json"));eval(fetch(config.cj));aytmParse(input)`;

//通用匹配
putVar("_x5", $.toString(() => {
    var urls = _getUrls()
    var newUrls = urls.filter(url => {
        return !url.includes("url=") &&
            url.match(/\.mp4|\.m3u8|\.flv/)
    });
    return newUrls[0]
}))
var 通免 = "@lazyRule=.js:showLoading('动态解析中，请稍候');'x5Rule://'+input+'@' + getVar('_x5')";

//from === "renrenmi"  人人迷自建
var RR = `requireCache(config.Gitee);ParseS.RR(input)`;

//from === "LT"  龙腾自建
var LT = `requireCache(config.Gitee);ParseS.LT(input)`;

//from === "rx"  融兴切片自建
var RX = `requireCache(config.Gitee);ParseS.RX(input)`;

//糖果/31看/瓜皮 影视切片
var TG = `requireCache(config.Gitee);ParseS.TG(input)`;

//from === "xfyun"
var xfyun = `requireCache(config.Gitee);x5rule('https://player.lihaoyun.top/m3u8.php?url='+input)`;

//from === "duoduozy"  多多资源切片
var DD = `requireCache(config.Gitee);x5rule('https://bo.movie06.com/xmplayer/?url='+input)`;

//断念插件调度设置

require('https://gitea.com/AI957/Hiker/raw/m/v/Route.js');
var setUrl = setupPages("设置");
var set_switch = setUrl;

/*           规则界面调渡区  → 动态分类技术                           有发粪涂墙&Reborn大佬提供  
备用地址: hiker://files/rules/js/categories-header.js
http://hiker.nokia.press/hikerule/rulelist.json?id=2705*/


var 一级 = {
    A: function() {
        var d = [];
        var html = getResCode();
        var list = pdfa(html, 列表);
        for (var j in list) {
            d.push({
                title: pdfh(list[j], 标题),
                desc: pdfh(list[j], 描述),
                img: pd(list[j], 图片) + '@Referer=',
                url: pd(list[j], 链接).replace('play', 'detail').replace('/sid/1/nid/1', '').replace('-1-1', '') + "#immersiveTheme#"
            });
        }
        setResult(d)
    },
    TLDT: function() {
        var d = d || []
        var 分类颜色 = '#1aad19';
        var page = MY_PAGE;
        var true_url = getMyVar('header.url', MY_URL);
        let 链接处理工具 = requireCache('https://gitee.com/reborn0/HikerRules/raw/master/plugins/UrlProcessor.js')
        true_url = 链接处理工具
            .链接(true_url)
            .页码(page)
            .获取处理结果();

        var html = fetch(true_url, {
            headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0)'
            }
        }) //我统一使用PC UA

        // '0' 为默认不折叠，'1' 为默认折叠
        const 当前折叠状态 = getMyVar('header.fold', '1')

        // 引入动态分类依赖
        // 框架已经稳定，使用 requireCache 更佳
        let htmlCategories = requireCache('https://gitee.com/reborn0/HikerRules/raw/master/plugins/categories-header.js')
        htmlCategories.界面(d)
            .分类链接(true_url)
            .源码(html)
            .页码(page)
            .添加分类定位(定位列表)
            .开启内置折叠功能() // 必须
            .折叠按钮样式({
                title: 当前折叠状态 == "1" ? "‘‘️ALL⁺’’" : "‘‘ALL⁻’’"
            }) // 可选
            .折叠(当前折叠状态) // 必须
            .开始打造分类();
        var list = pdfa(html, 列表);
        for (var j in list) {
            d.push({
                title: pdfh(list[j], 标题),
                desc: pdfh(list[j], 描述),
                img: pd(list[j], 图片) + '@Referer=',
                url: pd(list[j], 链接).replace('play', 'detail').replace('/sid/1/nid/1', '').replace('-1-1', '') + "#immersiveTheme#"
            });
        }
        setResult(d)
    }
}

var 章节 = {
    A: function() {
        if (MY_URL.indexOf('hiker://empty##') > -1) {
            var html = request(MY_URL.split('##')[1])
        } else {
            var html = getResCode()
        }
        var conts = parseDomForArray(html, 列表)[0]
        var list = parseDomForArray(conts, 列表名)
        var title = parseDomForHtml(list[list.length - 1], 'a&&Text')
        setResult("更新至: " + title);
    }
}

var 二级 = {
    A: function() {
        var d = [];
        var html = getResCode();
        var arts = pdfa(html, 线路列表);
        var tabs = [];
        for (var i in arts) {
            tabs.push(pdfh(arts[i], 线路标签).replace(' ', '').replace(' ', '').replace('蓝光秒播', '789pan').replace('蓝光极速', '人人迷').replace('蓝光①线', '腾讯').replace('蓝光④线', '芒果TV').replace('蓝光②线', '爱奇艺').replace('蓝光③线', '优酷').replace('蓝光⑤线', '搜狐').replace('蓝光⑦线', 'PPTV').replace('臻品影视①', 'leduo').replace('臻品影视②', 'bjm3u8').replace('臻品影视③', 'dbm3u8').replace('臻品影视④', 'tkm3u8').replace('臻品影视⑤', '605m3u8').replace('光纤云一', '爱奇艺').replace('光纤云二', '腾讯').replace('光纤云三', '优酷').replace('光纤云四', '芒果').replace('极速云一', '乐多').replace('极速云二', '哔哩哔哩').replace('飞碟云一', 'fuckapp').replace('流星云一', 'wjm3u8').replace('流星云二', 'bdxm3u8').replace('飞碟云二', 'fuckapp1').replace(' (支持手机)', ''))
        }
        var conts = pdfa(html, 选集列表);
        var lists = [];
        for (var i in conts) {
            lists.push(pdfa(conts[i], 选集标签))
        }

        d.push({
            title: "分类：" + pdfh(html, 类型).replace(/\//g, ' ').replace('分类：', '').replace('地区：', '').replace('年代：', '').replace('类型：', '').replace('年份：', '').substring(0, 17) + '\n' + pdfh(html, 演员).replace(/\//g, ' ').substring(0, 21),
            desc: pdfh(html, 更新).replace(/\//g, ' ').substring(0, 23) + '\n' + pdfh(html, 导演).replace(/\//g, ' ').substring(0, 19),
            pic_url: pd(html, 图片) + '@Referer=',
            url: pd(html, 图片),
            col_type: 'movie_1_vertical_pic_blur',
            extra: {
                gradient: true
            }
        });
        var Color = "#f13b66a";
        var Color1 = "#098AC1";

        function getHead(title) {
            return '‘‘’’<strong><font color="' + Color + '">' + title + '</front></strong>';
        }
        var desc = '简介 : ' + pdfh(html, 简介).replace('　　', '').replace('详情：', '').replace('剧情：', '').replace('　', '').replace('[收起部分]', '').replace('  展开全部', '').replace('收起全部', '').replace(' ', '').replace('展开 收起', '').replace('简介：', '').replace('...详情', '').replace(' 展开全部', '').substring(0, 60) + "…详情";
        d.push({
            title: '““””<small><font color=#871f78>' + desc + '</font></small>',
            url: 'hiker://empty#' + '\n\t\t\t\t\t\t\t' + pdfh(html, 简介) + `@rule=js:var res = {}; var d = [];d.push({title:'影片简介：'+MY_URL.split('hiker://empty#')[1],col_type: 'long_text'});res.data = d; setHomeResult(res);`,
            col_type: 'text_1'
        });
        d.push({
            col_type: 'line_blank'
        });
        d.push({
            col_type: 'big_blank_block'
        });
        d.push({
            col_type: 'big_blank_block'
        });
        d.push({
            col_type: 'big_blank_block'
        });

        d.push({
            title: '‘‘♥’’',
            url: 图片链接,
            col_type: 'scroll_button'
        });

        function setTabs(tabs, taburl) {
            for (var i in tabs) {
                var tabname = tabs[i];
                d.push({
                    title: tabname,
                    col_type: 'scroll_button',
                    url: $("#noLoading#").lazyRule((tabname, taburl, i) => {
                        putMyVar('当前线路名', tabname);
                        putMyVar(taburl, i)
                        refreshPage();
                        return 'hiker://empty'
                    }, tabname, taburl, i)
                })
            }
        }

        function setLists(lists, index) {
            var list = lists[index];
            try {
                if (pdfh(list[0], "a&&Text").match(/(\d+)/)[0] > pdfh(list.slice(-1)[0], "a&&Text").match(/(\d+)/)[0]) list.reverse()
            } catch (e) {}
            if (tabs.length > 1 || list.length > 20) {
                var icon_s = 'http://82.156.222.77/weisyr/icon/';
                if (getMyVar('选集排序') == 1) {
                    var avatar = icon_s + '正序.svg'
                } else {
                    var avatar = icon_s + '反序.svg'
                }
                d.push({
                    title: getMyVar('当前线路名', tabs[0]) + "<small><font color='grey'>" + '\t\t共 ' + list.length + ' 条' + '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' +
                        "</font></small>" + "正反序★",
                    url: `@lazyRule=.js:if(getMyVar('选集排序')==1){putMyVar('选集排序', 0);}else{putMyVar('选集排序', 1)};refreshPage();'hiker://empty'`,
                    col_type: 'avatar',
                    img: avatar
                })
            }

            for (let i = 0; i < 5; i++) {
                d.push({
                    col_type: "blank_block"
                })
            }

            function playLists() {
                var jm = pdfh(list[j], 'a&&Text').replace(/第|集|话|期|-/g, '').replace(/预告/g, '');
                if (list.length < 5) {
                    var col = 'text_2'
                } else {
                    var col = jm.length > 5 ? 'text_3' : 'text_4'
                }
                let url = pd(list[j], 'a&&href');
                d.push({
                    title: jm,
                    url: url + lazy,
                    extra: {
                        id: url},
                    col_type: col
                });
            }
            addListener('onClose', $.toString(() => {
                clearMyVar('当前线路名');
                clearMyVar('分集起');
                clearMyVar('分集终');
            }))
            //选集＞则启用选集分区
            if (list.length > 104) {
                //设置内页选集数目
                var page_number = 100;
                var star = getMyVar('分集起', '1');
                var end = getMyVar('分集终', JSON.stringify(page_number));
                var total = Math.ceil(list.length / page_number);
                var catalogue = []
                for (let i = 0; i < total; i++) {
                    catalogue += i * page_number + ',';
                    catalogue = catalogue.split(',');
                }
                for (let i = 0; i < 8; i++) {
                    d.push({
                        col_type: "blank_block"
                    })
                }
                for (var i = 0; i < catalogue.length - 1; i++) {
                    var total1 = parseInt(catalogue[i]) + 1;
                    var total2 = parseInt(catalogue[i + 1]);
                    if (i == (catalogue.length - 2)) var total2 = list.length;
                    d.push({
                        title: star == total1 ? '‘‘' + total1 + '-' + total2 + '’’' : total1 + '-' + total2,
                        url: $("#noLoading#").lazyRule((total1, total2) => {
                            putMyVar('分集起', total1);
                            putMyVar('分集终', total2);
                            refreshPage();
                            return 'hiker://empty'
                        }, total1, total2),
                        col_type: 'scroll_button'
                    });
                }
                if (getMyVar('选集排序') == 1) {
                    for (var j = end - 1; j >= star - 1; j--) {
                        playLists()
                    }
                } else {
                    for (var j = star - 1; j < end; j++) {
                        playLists()
                    }
                }
            } else {
                if (getMyVar('选集排序') == 1) {
                    for (var j = list.length - 1; j >= 0; j--) {
                        playLists()
                    }
                } else {
                    for (var j = 0; j < list.length; j++) {
                        playLists()
                    }
                }
            }
            d.push({
                col_type: 'rich_text'
            });
            d.push({
                col_type: 'rich_text'
            });
        }
        setTabs(tabs, MY_URL);
        setLists(lists, getMyVar(MY_URL, '0'));
        d.push({
            title: '““””<small><small><font color=#871f78>数据资源收集于网络，海阔不提供任何资源</font></small>',
            desc: '““””<small><small><font color=#f20c00>本规则仅限学习与交流，请导入后24小时内删除，请勿传播！</font></small>',
            url: MY_URL,
            col_type: 'text_center_1'
        });
        setResult(d);
    }
}

var 搜索 = {
    A: function() {
        var d = [];
        var res = {};
        var html = getResCode();
        var list = pdfa(html, 列表);
        for (var j in list) {
            d.push({
                title: pdfh(list[j], 标题),
                desc: pdfh(list[j], 描述),
                content: pdfh(list[j], 类型).substring(0, 19) + '\n' + pdfh(list[j], 简介),
                img: pd(list[j], 图片) + "@Referer=",
                url: pd(list[j], 链接).replace('play', 'detail').replace('/sid/1/nid/1', '').replace('-1-1', '') + "#immersiveTheme#"
            });
        }
        res.data = d;
        setSearchResult(res);
    },
    B: function() {
        var json = {};
        eval('json=' + getResCode());
        var res = {};
        var d = [];
        for (var i = 0; i < json.list.length; i++) {
            var r = {};
            var j = json.list[i];
            r.title = j.name;
            r.img = j.pic.indexOf('http') != -1 ? j.pic : url + j.pic;
            r.url = urll + j.id + '/' + "#immersiveTheme#";
            r.content = j.name + '\n' + j.en;
            if (r.title !== null && r.title !== undefined && r.title !== '') d.push(r);
        }
        res.data = d;
        setSearchResult(res);
    },
    //搜索C技术源码有墙佬提供，yyds
    C: function() {
        var d = [];
        var html = getResCode()
        if (html.indexOf('检测中') != -1) {
            html = request(MY_URL + '?btwaf' + html.match(/btwaf(.*?)\"/)[1], {
                headers: {
                    'Cookie': getMyVar('cookie')
                }
            });
        }
        if (html.indexOf('系统安全验证') > -1) {
            var ssyz = 'TloGnnikThrfs/5fDNlk5CSsbaGtAH7W/uMZjuYoIupB6bCoo9CotLQHfPIdGgbkbynKqL2aUE2Xy558X2QxHYtTU09vD+4oaCDIuSZO7nxDbLfRGfWj7zql+yMbvF+aJoD/m6Psfw/PyYOAp/ZVGdrPzaCByfd0HL5DFVSw+YF2OC40V8SP9RxdFKKdrBuPxCWdxUCFrJ+1lRy/TU3LC84C4xxEBhgud7RtBp0zZArqBE06+Z3JtDP0eFCz/D5X0409qPHK3e1y/LuUgccuxpHnjYLE1GjlP8wYA2hQWe7yPngggQBHw33/gvb3tuCcxEKTWgmah/R32AH9ZF8jF7WemT26lUizVXe/spCdhDiwRmgTBTHWuSeJWgKHJRb9iVSn2X6OK90RfEqjkC/rIUeZMOlYpXh7zXix9HkNSurWsdOgtH46rV4Xi7EYo5Ksh0ZP9HUrZ5YHpH3pyeXMlZINa9KUhHeS6n79hjw9AlRL8ys+hzx2iDejWJBmihuJVQYjlWSgB7EAMas2+2yzBCS7H2+45+c8/PETISE+t0qXX621OW+KdysH4jBck/eV9seH/bTWaEoBMesyj/x/h6ScJQtQRavyAk+318qOcIJ+68hs502OnfsTjUgXtyXDjZ7TIcvBBIdP0ewBZpCdOxonBPMSC/QfoZBfJDV6YxXMTghGkKraKK2t+/3MUd+PwippGuO3P2jnH88FPyyx9f12Z/jKRNS+6l9fL9MbuGjr/wL73kz5E7sUEI4NTNOkZrShs/ni+qKrz4WBygFPymdAogdK4WNX2t9wb+t0+uk9ozEHo+kmifijiMQHrwsGNh++imQtlLD7hff6T7uHuY9f34N+NRhedZLNOS3aDJ6SQw96bLncC5rIk5XwLw/NejXlzWg2SDlRGyz31UArjafxA8EgsQ0weLWJn8C3+RqU8sO39MGS4yjQDG5gIa4bSUvBru7wJ6t0FTrBFRGYHeSGRAcyu7SB1CRmJ0rFgwBd59E2LLA56xPs9RUpedVUI/RoFKQlr8g0dUnP3BPtDSfkhSsIrOyyo+fD7u6wJmXzxckZYSvaJCyjvoTQR853a7y3wJ/AlB/nhdqW4QtdirczrhioAEdgZ/u0c+QtZx00QFJd+O6UWVqHQREOVdmiGdtJ+yuf05M6vr26SaegpFUR2hiEHZQYOR/+kTta2i0='
            evalPrivateJS(ssyz);
            let headers = {
                "User-Agent": PC_UA,
                "Cookie": getMyVar('cookie'),
                "Referer": MY_URL
            };
            let vcode = getVCode2(验证码, JSON.stringify(headers), 'num');
            fetch(验证码链接 + JSON.parse(vcode).ret, {
                headers: headers,
                method: 'POST'
            });
            html = fetch(getUrl(), {
                headers: headers
            });
        }

        log(html)
        pdfa(html, 列表).forEach(list => {
            d.push({
                title: pdfh(list, 标题),
                desc: pdfh(list, 描述),
                content: pdfh(list, 类型).substring(0, 19) + '\n' + pdfh(list, 简介),
                img: pd(list, 图片) + "@Referer=",
                url: pd(list, 链接).replace('play', 'detail').replace('/sid/1/nid/1', '').replace('-1-1', '') + "#immersiveTheme#"
            });
        })
        setResult(d)
    }
}

var xiao = {
    yiji: function() {
        var d = [];
        var html = getResCode();
        if (MY_URL.match(/-----1/)) {
            //if (MY_URL.indexOf('page/1') > -0) {
            d.push({
                title: 'B站',
                url: 'hiker://home@哔哩ℛ',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 豆瓣 ',
                url: 'hiker://home@青豆',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 聚合 ',
                url: 'hiker://home@聚合圈',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 影视 ',
                url: 'hiker://home@影视圈',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 漫画 ',
                url: 'hiker://home@漫画集',
                col_type: 'scroll_button',
            });
            d.push({
                title: '虎牙',
                url: 'hiker://home@虎牙',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 直播 ',
                url: 'hiker://home@娱乐集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 音乐 ',
                url: 'hiker://home@音乐集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 仓库 ',
                url: 'hiker://home@道长仓库Pro',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 导入 ',
                url: 'hiker://home@合集导入',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 听书 ',
                url: 'hiker://home@听书集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 图书 ',
                url: 'hiker://home@图书馆',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' SET•ᴰⁿ ',
                url: 'hiker://home@MyFieldᴰⁿ',
                col_type: 'scroll_button',
            });
            const shortcut = [
                '插件@@hiker://js@@hiker://images/collection',
                '收藏@@hiker://collection@@hiker://images/history',
                '备份@@hiker://webdav@@hiker://images/video',
                '书签@@hiker://bookmark@@hiker://images/bookmark'
            ];
            shortcut.forEach(function(s) {
                let a = s.split(/\s*@@\s*/);
                d.push({
                    title: a[0],
                    url: a[1],
                    pic_url: a[2],
                    col_type: 'icon_small_4'
                });
            });
            d.push({
                col_type: 'line_blank'
            });
            d.push({
                col_type: 'big_blank_block'
            })
        }
        var list = pdfa(html, 列表);
        for (var j in list) {
            d.push({
                title: pdfh(list[j], 标题),
                desc: pdfh(list[j], 描述),
                img: pd(list[j], 图片) + '@Referer=',
                url: pd(list[j], 链接).replace('play', 'detail').replace('/sid/1/nid/1', '').replace('-1-1', '') + "#immersiveTheme#"
            });
        }
        setResult(d)
    },
    TLDT: function() {
        var d = d || []
        var 分类颜色 = '#1aad19';
        var page = MY_PAGE;
        var true_url = getMyVar('header.url', MY_URL);
        if (MY_URL.match(/-----1/)) {
            //if (MY_URL.indexOf('page/1') > -0) {
            const shortcut = [
                '插件@@hiker://js@@http://imgwx3.2345.com/dianyingimg/star/img/c/0/13/photo_192x262.jpg@Referer=',
                '收藏@@hiker://collection@@http://imgwx3.2345.com/dypcimg/star/img/a/8/24330/photo_192x262.jpg?1509946884@Referer=',
                '备份@@hiker://webdav@@http://imgwx3.2345.com/dypcimg/star/img/f/0/335/photo_192x262.jpg?1509947665@Referer=',
                '书签@@hiker://bookmark@@http://imgwx3.2345.com/dypcimg/star/img/c/0/16/photo_192x262.jpg?1477534221@Referer='
            ];
            shortcut.forEach(function(s) {
                let a = s.split(/\s*@@\s*/);
                d.push({
                    title: a[0],
                    url: a[1],
                    pic_url: a[2],
                    col_type: 'icon_round_4'
                });
            });
            d.push({
                title: 'B站',
                url: 'hiker://home@哔哩ℛ',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 豆瓣 ',
                url: 'hiker://home@青豆',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 聚合 ',
                url: 'hiker://home@聚合圈',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 影视 ',
                url: 'hiker://home@影视圈',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 漫画 ',
                url: 'hiker://home@漫画集',
                col_type: 'scroll_button',
            });
            d.push({
                title: '虎牙',
                url: 'hiker://home@虎牙',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 直播 ',
                url: 'hiker://home@娱乐集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 音乐 ',
                url: 'hiker://home@音乐集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 仓库 ',
                url: 'hiker://home@道长仓库Pro',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 导入 ',
                url: 'hiker://home@合集导入',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 听书 ',
                url: 'hiker://home@听书集',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' 图书 ',
                url: 'hiker://home@图书馆',
                col_type: 'scroll_button',
            });
            d.push({
                title: ' SET•ᴰⁿ ',
                url: 'hiker://home@MyFieldᴰⁿ',
                col_type: 'scroll_button',
            });
            d.push({
                col_type: 'line_blank'
            });
            d.push({
                col_type: 'big_blank_block'
            })
        }
        let 链接处理工具 = requireCache('https://gitee.com/reborn0/HikerRules/raw/master/plugins/UrlProcessor.js')
        true_url = 链接处理工具
            .链接(true_url)
            .页码(page)
            .获取处理结果();

        var html = fetch(true_url, {
            headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0)'
            }
        }) //我统一使用PC UA

        // '0' 为默认不折叠，'1' 为默认折叠
        const 当前折叠状态 = getMyVar('header.fold', '1')

        // 引入动态分类依赖
        // 框架已经稳定，使用 requireCache 更佳
        let htmlCategories = requireCache('https://gitee.com/reborn0/HikerRules/raw/master/plugins/categories-header.js')
        htmlCategories.界面(d)
            .分类链接(true_url)
            .源码(html)
            .页码(page)
            .添加分类定位(定位列表)
            .开启内置折叠功能() // 必须
            .折叠按钮样式({
                title: 当前折叠状态 == "1" ? "‘‘️ALL⁺’’" : "‘‘ALL⁻’’"
            }) // 可选
            .折叠(当前折叠状态) // 必须
            .开始打造分类();
        var list = pdfa(html, 列表);
        for (var j in list) {
            d.push({
                title: pdfh(list[j], 标题),
                desc: pdfh(list[j], 描述),
                img: pd(list[j], 图片) + '@Referer=',
                url: pd(list[j], 链接).replace('play', 'detail').replace('/sid/1/nid/1', '') + "#immersiveTheme#"
            });
        }
        setResult(d)
    },
    erji: function() {
        var d = [];
        var html = getResCode();
        var arts = pdfa(html, 线路列表);
        var tabs = [];
        for (var i in arts) {
            tabs.push(pdfh(arts[i], 线路标签).replace(' ', '').replace(' ', '').replace('蓝光秒播', '789pan').replace('蓝光极速', '人人迷').replace('蓝光①线', '腾讯').replace('蓝光④线', '芒果TV').replace('蓝光②线', '爱奇艺').replace('蓝光③线', '优酷').replace('蓝光⑤线', '搜狐').replace('蓝光⑦线', 'PPTV').replace('臻品影视①', 'leduo').replace('臻品影视②', 'bjm3u8').replace('臻品影视③', 'dbm3u8').replace('臻品影视④', 'tkm3u8').replace('臻品影视⑤', '605m3u8').replace('光纤云一', '爱奇艺').replace('光纤云二', '腾讯').replace('光纤云三', '优酷').replace('光纤云四', '芒果').replace('极速云一', '乐多').replace('极速云二', '哔哩哔哩').replace('飞碟云一', 'fuckapp').replace('流星云一', 'wjm3u8').replace('流星云二', 'bdxm3u8').replace('飞碟云二', 'fuckapp1').replace(' (支持手机)', ''))
        }
        var conts = pdfa(html, 选集列表);
        var lists = [];
        for (var i in conts) {
            lists.push(pdfa(conts[i], 选集标签))
        }

        d.push({
            title: "分类：" + pdfh(html, 类型).replace(/\//g, ' ').replace('分类：', '').replace('地区：', '').replace('年代：', '').replace('类型：', '').replace('年份：', '').substring(0, 17) + '\n' + pdfh(html, 演员).replace(/\//g, ' ').substring(0, 21),
            desc: pdfh(html, 更新).replace(/\//g, ' ').substring(0, 23) + '\n' + pdfh(html, 导演).replace(/\//g, ' ').substring(0, 19),
            pic_url: pd(html, 图片) + '@Referer=',
            url: pd(html, 图片),
            col_type: 'movie_1_vertical_pic_blur',
            extra: {
                gradient: true
            }
        });
        var Color = "#f13b66a";
        var Color1 = "#098AC1";
        var title = pdfh(getResCode(), 搜索标签);
        d.push({
            title: '影视圈',
            url: 'hiker://search?s=' + title + '&rule=影视圈',
            pic_url: "https://android-artworks.25pp.com/fs08/2021/09/27/4/110_ac616f09c919505edb3062f75a482f95_con_130x130.png",
            col_type: 'icon_round_small_4'
        })
        d.push({
            title: '聚合圈',
            url: 'hiker://search?s=' + title + '&rule=聚合圈',
            pic_url: "https://android-artworks.25pp.com/fs08/2021/07/09/7/106_1851f49745a0ca69466bde2e10c6f11d_con_130x130.png",
            col_type: 'icon_round_small_4'
        })
        d.push({
            title: '搜索',
            url: 'hiker://search?s=' + title + '&group=',
            pic_url: "https://android-artworks.25pp.com/fs08/2021/09/24/8/110_f98d3afc01e5d3d390b869a5109fb256_con_130x130.png",
            col_type: 'icon_round_small_4'
        })
        d.push({
            title: '豆瓣',
            url: 'hiker://search?s=' + title + '&rule=青豆',
            pic_url: "https://android-artworks.25pp.com/fs08/2021/11/08/11/110_a374ae9e5edb4277017306b68b07847f_con_130x130.png",
            col_type: 'icon_round_small_4'
        })

        function getHead(title) {
            return '‘‘’’<strong><font color="' + Color + '">' + title + '</front></strong>';
        }
        var desc = '简介 : ' + pdfh(html, 简介).replace('　　', '').replace('详情：', '').replace('剧情：', '').replace('　', '').replace('[收起部分]', '').replace('  展开全部', '').replace('收起全部', '').replace(' ', '').replace('展开 收起', '').replace('简介：', '').replace('...详情', '').replace(' 展开全部', '').substring(0, 60) + "…详情";
        d.push({
            title: '““””<small><font color=#871f78>' + desc + '</font></small>',
            url: 'hiker://empty#' + '\n\t\t\t\t\t\t\t' + pdfh(html, 简介) + `@rule=js:var res = {}; var d = [];d.push({title:'影片简介：'+MY_URL.split('hiker://empty#')[1],col_type: 'long_text'});res.data = d; setHomeResult(res);`,
            col_type: 'text_1'
        });
        d.push({
            col_type: 'line_blank'
        });
        d.push({
            col_type: 'big_blank_block'
        });
        d.push({
            col_type: 'big_blank_block'
        });
        d.push({
            col_type: 'big_blank_block'
        });

        d.push({
            title: '‘‘♥’’',
            url: 图片链接,
            col_type: 'scroll_button'
        });

        function setTabs(tabs, taburl) {
            for (var i in tabs) {
                var tabname = tabs[i];
                d.push({
                    title: tabname,
                    col_type: 'scroll_button',
                    url: $("#noLoading#").lazyRule((tabname, taburl, i) => {
                        putMyVar('当前线路名', tabname);
                        putMyVar(taburl, i)
                        refreshPage();
                        return 'hiker://empty'
                    }, tabname, taburl, i)
                })
            }
        }

        function setLists(lists, index) {
            var list = lists[index];
            try {
                if (pdfh(list[0], "a&&Text").match(/(\d+)/)[0] > pdfh(list.slice(-1)[0], "a&&Text").match(/(\d+)/)[0]) list.reverse()
            } catch (e) {}
            if (tabs.length > 1 || list.length > 20) {
                var icon_s = 'http://82.156.222.77/weisyr/icon/';
                if (getMyVar('选集排序') == 1) {
                    var avatar = icon_s + '正序.svg'
                } else {
                    var avatar = icon_s + '反序.svg'
                }
                d.push({
                    title: getMyVar('当前线路名', tabs[0]) + "<small><font color='grey'>" + '\t\t共 ' + list.length + ' 条' + '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' +
                        "</font></small>" + "正反序★",
                    url: `@lazyRule=.js:if(getMyVar('选集排序')==1){putMyVar('选集排序', 0);}else{putMyVar('选集排序', 1)};refreshPage();'hiker://empty'`,
                    col_type: 'avatar',
                    img: avatar
                })
            }

            for (let i = 0; i < 5; i++) {
                d.push({
                    col_type: "blank_block"
                })
            }

            function playLists() {
                var jm = pdfh(list[j], 'a&&Text').replace(/第|集|话|期|-/g, '').replace(/预告/g, '');
                if (list.length < 5) {
                    var col = 'text_2'
                } else {
                    var col = jm.length > 5 ? 'text_3' : 'text_4'
                }
                let url = pd(list[j], 'a&&href');
                d.push({
                    title: jm,
                    url: url + lazy,
                    extra: {
                        id: url},
                    col_type: col
                });
            }
            addListener('onClose', $.toString(() => {
                clearMyVar('当前线路名');
                clearMyVar('分集起');
                clearMyVar('分集终');
            }))
            //选集＞则启用选集分区
            if (list.length > 104) {
                //设置内页选集数目
                var page_number = 100;
                var star = getMyVar('分集起', '1');
                var end = getMyVar('分集终', JSON.stringify(page_number));
                var total = Math.ceil(list.length / page_number);
                var catalogue = []
                for (let i = 0; i < total; i++) {
                    catalogue += i * page_number + ',';
                    catalogue = catalogue.split(',');
                }
                for (let i = 0; i < 8; i++) {
                    d.push({
                        col_type: "blank_block"
                    })
                }
                for (var i = 0; i < catalogue.length - 1; i++) {
                    var total1 = parseInt(catalogue[i]) + 1;
                    var total2 = parseInt(catalogue[i + 1]);
                    if (i == (catalogue.length - 2)) var total2 = list.length;
                    d.push({
                        title: star == total1 ? '‘‘' + total1 + '-' + total2 + '’’' : total1 + '-' + total2,
                        url: $("#noLoading#").lazyRule((total1, total2) => {
                            putMyVar('分集起', total1);
                            putMyVar('分集终', total2);
                            refreshPage();
                            return 'hiker://empty'
                        }, total1, total2),
                        col_type: 'scroll_button'
                    });
                }
                if (getMyVar('选集排序') == 1) {
                    for (var j = end - 1; j >= star - 1; j--) {
                        playLists()
                    }
                } else {
                    for (var j = star - 1; j < end; j++) {
                        playLists()
                    }
                }
            } else {
                if (getMyVar('选集排序') == 1) {
                    for (var j = list.length - 1; j >= 0; j--) {
                        playLists()
                    }
                } else {
                    for (var j = 0; j < list.length; j++) {
                        playLists()
                    }
                }
            }
            d.push({
                col_type: 'rich_text'
            });
            d.push({
                col_type: 'rich_text'
            });
        }
        setTabs(tabs, MY_URL);
        setLists(lists, getMyVar(MY_URL, '0'))
        d.push({
            title: '““””<small><small><font color=#871f78>数据资源收集于网络，海阔不提供任何资源</font></small>',
            desc: '““””<small><small><font color=#f20c00>本规则仅限学习与交流，请导入后24小时内删除，请勿传播！</font></small>',
            url: MY_URL,
            col_type: 'text_center_1'
        });
        setResult(d);
    }
}

//最后更新时间: 20:08